﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sinacor.Tools.Entidade
{
    public class Modulo : IComparer<Modulo>
    {
        private static string propriedadeSort;
        private int portaMex;
        private int porta;
        private string nome = string.Empty;
        private string submodulo = string.Empty;
        private string servico = string.Empty;
        

        public int Porta
        {
            get { return this.porta; }
            set { this.porta = value; }
        }

        public int PortaMex
        {
            get { return this.portaMex; }
            set { this.portaMex = value; }
        }

        public string Nome
        {
            get { return this.nome; }
            set { this.nome = value; }
        }

        public string Submodulo
        {
            get { return this.submodulo; }
            set { this.submodulo = value; }
        }


        public string Servico
        {
            get { return this.servico; }
            set { this.servico = value; }
        }

        public static string PropriedadeSort
        {
            set { propriedadeSort = value; }
        }


        #region IComparer<Modulo> Members

        public int Compare(Modulo x, Modulo y)
        {
            int resultado = 0;
            switch (propriedadeSort.ToLower())
            {
                case "porta":
                    resultado = x.porta.CompareTo(y.porta);
                    break;

                case "portamex":
                    resultado = x.portaMex.CompareTo(y.portaMex);
                    break;

                case "nome":
                    resultado = x.nome.CompareTo(y.nome);
                    break;

                case "submodulo":
                    resultado = x.submodulo.CompareTo(y.submodulo);
                    break;

                case "servico":
                    resultado = x.servico.CompareTo(y.servico);
                    break;

            }
            return resultado;            
        }

        #endregion
    }
}
